Formal Methods: A Practical Tool for OS Implementors
نویسندگان
چکیده
The formal methods community has long known about the need to formally analyze concurrent software, but the OS community has been slow to adopt such methods. The foremost reasons for this are the cultural and knowledge gaps between formalists and OS hackers, fostered by three beliefs: inaccessibility of the tools, the disabling gap between the validated model and actual implementation, and the intractable size of operating systems. In this paper, we show these beliefs to be untrue for appropriately structured operating systems. We applied formal methods to verify properties of the implementation of the Fluke microkernel’s IPC subsystem, a major component of the kernel. In particular, we have verified, in many scenarios, certain liveness properties and lack of deadlock, with results that apply to both SMP and uniprocessor environments. The SPIN model checker provided an exhaustive concurrency analysis of the IPC subsystem, unattainable through traditional OS testing methods. SPIN is easily accessible to programmers inexperienced with formal methods. We present our results as a starting point for a more comprehensive inclusion of formal methods in practical OS development. This research was supportedin part by the Defense AdvancedResearch Projects Agency, monitored by the Department of the Army under contract number DABT63–94–C–0058, and Rome Laboratory, Air Force Material Command, USAF, underagreementnumberF30602–96–2–0269. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation hereon. y U.S. Department of Defense. Copyright1997 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposesor for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
منابع مشابه
Deadline Analysis of AUTOSAR OS Periodic Tasks in the Presence of Interrupts
AUTOSAR, the open and emerging global standard for automotive embedded systems, offers a timing protection mechanism to protect tasks from missing their deadlines. However, in practice, it is difficult to predict when a deadline is violated, because a task missing its deadline may be caused by unrelated tasks or by the presence of interrupts. In this paper, we propose an abstract formal model t...
متن کاملFeatherweight OCL: A Proposal for a Machine-Checked Formal Semantics for OCL 2.5
The Unified Modeling Language (UML) is one of the few modeling languages that is widely used in industry. While UML is mostly known as diagrammatic modeling language (e. g., visualizing class models), it is complemented by a textual language, called Object Constraint Language (OCL). OCL is a textual annotation language, based on a three-valued logic, that turns UML into a formal language. Unfor...
متن کاملA Pragmatic Approach to Formalizing Object-Oriented Modeling and Development
Despite recent developments in formal methods, formal methods have yet to enter the mainstream of software industry. In this paper, we first examine the pragmatic obstacles of making formal methods practical and usable. Then, we present a pragmatic approach to integrate a popular Object-Oriented modeling notation UML and a popular formal notationZ. Our approach is distinctive in its emphasis on...
متن کاملFormal Method in Service Composition in Heath Care Systems
One of the areas with greatest needs having available information at the right moment and with high accuracy is healthcare. Right information at right time saves lives. Healthcare is a vital domain which needs high processing power for high amounts of data. Due to the critical and the special characteristics of these systems, formal methods are used for specification, description and verificati...
متن کاملCorrect Microkernel Primitives
Primitives are basic means provided by a microkernel to implementors of operating system services. Intensively used within every OS and commonly implemented in a mixture of high-level and assembly programming languages, primitives are meaningful and challenging candidates for formal verification. We report on the accomplished correctness proof of academic microkernel primitives. We describe how...
متن کامل